package cn.iocoder.lw.module.core.controller.app.evaluation.vo.evaluation;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;

@Schema(description = "用户 APP - 工单评价新增 Request VO")
@Data
public class AppCoreWorkOrderEvaluationCreateReqVO {

    @Schema(description = "工单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12345")
    @NotNull(message = "工单编号不能为空")
    private Long workOrderId;

    @Schema(description = "总体评分（1-5分）", requiredMode = Schema.RequiredMode.REQUIRED, example = "5")
    @Min(value = 1, message = "总体评分不能少于1分")
    @Max(value = 5, message = "总体评分不能超过5分")
    private Integer overallScore;

    @Schema(description = "服务态度评分（1-5分）", example = "5")
    @Min(value = 1, message = "服务态度评分不能少于1分")
    @Max(value = 5, message = "服务态度评分不能超过5分")
    private Integer serviceAttitudeScore;

    @Schema(description = "专业技能评分（1-5分）", example = "5")
    @Min(value = 1, message = "专业技能评分不能少于1分")
    @Max(value = 5, message = "专业技能评分不能超过5分")
    private Integer professionalSkillScore;

    @Schema(description = "响应速度评分（1-5分）", example = "5")
    @Min(value = 1, message = "响应速度评分不能少于1分")
    @Max(value = 5, message = "响应速度评分不能超过5分")
    private Integer responseSpeedScore;

    @Schema(description = "评价内容", example = "服务很好，师傅很专业")
    private String content;

    @Schema(description = "评价图片URL", example = "https://example.com/image1.jpg,https://example.com/image2.jpg")
    private String images;

    @Schema(description = "是否匿名评价", example = "false")
    private Boolean anonymous;

    @Schema(description = "标签", example = "专业,准时,服务好")
    private String tags;

    @Schema(description = "发起人ID", example = "12345")
    private Long initiatorId;

    @Schema(description = "接单人ID", example = "12345")
    private Long assigneeId;

}